/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/

#include "diarytools.h"
#include "loginwidget.h"
#include "news_widget.h"

diarytools::diarytools(QWidget *parent)
    : QWidget(parent)
{
	ui.setupUi(this);
	this->Login();
}

diarytools::~diarytools()
{

}

void diarytools::Login(){
	QString sid=dt::UserID();
	QString spwd=dt::UserPwd();
	QUrl u(LoginUrl);
	u.addQueryItem("uid",QUrl::toPercentEncoding(sid));
	u.addQueryItem("pwd",QUrl::toPercentEncoding(spwd));
	#ifdef _USE_MID_PAGE_
	QString _u=u.toString();
	u=QUrl(_MID_PAGE_);
	u.addQueryItem("url",QUrl::toPercentEncoding(_u));
	#endif
	dh=new DtHttp(u,GET,this);
	connect(dh->Send(),SIGNAL(finished(QNetworkReply*)),this,SLOT(finished(QNetworkReply*)));
}

void diarytools::ReadXml(const QString& xml){
    QDomDocument doc("mydocument"); 
	if (!doc.setContent(xml,false)) 
	{   
		//QMessageBox::critical(this,"a","a",QMessageBox::Ok);     
		loginwidget* lw=new loginwidget();
		lw->showFullScreen();
		this->~diarytools();
		return;      
	}
    QDomElement docElem = doc.documentElement(); 
	QString rootTag = docElem.tagName(); // == persons
	QDomElement eleEr=docElem.firstChildElement("error");
	QDomElement ele=eleEr.firstChildElement("code");
	//QMessageBox::critical(this,"b","b",QMessageBox::Ok);
	if(ele.text().trimmed()=="1"){
		//QMessageBox::critical(this,"c","c",QMessageBox::Ok);
		loginwidget* lw=new loginwidget();
		lw->showMaximized();
		//QMessageBox::critical(this,"d","d",QMessageBox::Ok);
		this->close();
		return;  
	}
	ele=eleEr.firstChildElement("token");
	QString token=ele.text();
	dt::Set(_TOKEN_,token);
	//QMessageBox::critical(this,"d","d",QMessageBox::Ok);
	news_widget* nw=new news_widget();
	nw->showFullScreen();
	this->~diarytools();
}


void diarytools::finished(QNetworkReply *reply){
    if(reply->error() == QNetworkReply::NoError)
    {
		QString xml=reply->readAll();
		this->ReadXml(xml);
    }
    else
    {
		loginwidget* lw=new loginwidget();
		lw->showFullScreen();
		this->~diarytools();
		return;
    }
}
